Overview
React Native hooks for building AI-powered mobile applications.
The @anuma/sdk/expo package provides React hooks optimized for
Expo and React Native environments. These hooks exclude web-only
dependencies (like pdfjs-dist) that aren’t compatible with React Native.
Installation & Setup
Before using this package, you must set up polyfills for React Native compatibility. See the polyfills module documentation for complete setup instructions.
Quick setup summary:
pnpm install @anuma/sdk@next web-streams-polyfill react-native-get-random-values @ethersproject/shims bufferThen create an entrypoint file with all required polyfills. See ai-example-expo for a complete working example.
Differences from React Package
The Expo package is a lightweight subset of @anuma/sdk/react:
- No PDF text extraction (pdfjs-dist is web-only)
- Uses XMLHttpRequest for streaming (fetch streaming isn’t supported in RN)
Authentication
Use @privy-io/expo for authentication in React Native:
import { PrivyProvider, usePrivy } from "@privy-io/expo";
import { useIdentityToken } from "@privy-io/expo";
// Wrap your app with PrivyProvider
<PrivyProvider appId="your-app-id" clientId="your-client-id">
<App />
</PrivyProvider>;
// Get identity token for API calls
const { getIdentityToken } = useIdentityToken();Quick Start
import { useIdentityToken } from "@privy-io/expo";
import { useChat } from "@anuma/sdk/expo";
function ChatScreen() {
const { getIdentityToken } = useIdentityToken();
const { isLoading, sendMessage, stop } = useChat({
getToken: getIdentityToken,
baseUrl: "https://portal.anuma-dev.ai",
onData: (chunk) => {
// Handle streaming chunks
const content =
typeof chunk === "string"
? chunk
: chunk.choices?.[0]?.delta?.content || "";
console.log("Received:", content);
},
onFinish: () => console.log("Stream finished"),
onError: (error) => console.error("Error:", error),
});
const handleSend = async () => {
await sendMessage({
messages: [{ role: "user", content: [{ type: "text", text: "Hello!" }] }],
model: "openai/gpt-4o",
});
};
return (
<View>
<Button onPress={handleSend} disabled={isLoading} title="Send" />
{isLoading && <Button onPress={stop} title="Stop" />}
</View>
);
}Hooks
| Function | Description |
|---|---|
| useChat | A React hook for managing chat completions with authentication. |
| useChatStorage | A React hook that wraps useChat with automatic message persistence using WatermelonDB. |
Other
CachedServerTools
Re-exports CachedServerTools
ChatConversation
Re-exports ChatConversation
ChatMessage
Re-exports ChatMessage
ChatRole
Re-exports ChatRole
chatStorageMigrations
Re-exports chatStorageMigrations
chatStorageSchema
Re-exports chatStorageSchema
clearAllEncryptionKeys
Re-exports clearAllEncryptionKeys
clearEncryptionKey
Re-exports clearEncryptionKey
clearServerToolsCache
Re-exports clearServerToolsCache
CreateConversationOptions
Re-exports CreateConversationOptions
createMemoryEngineTool
Re-exports createMemoryEngineTool
createMemoryVaultTool
Re-exports createMemoryVaultTool
CreateMessageOptions
Re-exports CreateMessageOptions
createVaultFolderOp
Re-exports createVaultFolderOp
CreateVaultFolderOptions
Re-exports CreateVaultFolderOptions
createVaultMemoriesBatchOp
Re-exports createVaultMemoriesBatchOp
createVaultMemoryOp
Re-exports createVaultMemoryOp
CreateVaultMemoryOptions
Re-exports CreateVaultMemoryOptions
DatabaseManager
Re-exports DatabaseManager
DatabaseManagerLogger
Re-exports DatabaseManagerLogger
DatabaseManagerOptions
Re-exports DatabaseManagerOptions
DEFAULT_CACHE_EXPIRATION_MS
Re-exports DEFAULT_CACHE_EXPIRATION_MS
deleteAllVaultMemoriesForUserOp
Re-exports deleteAllVaultMemoriesForUserOp
deleteVaultFolderOp
Re-exports deleteVaultFolderOp
deleteVaultMemoryOp
Re-exports deleteVaultMemoryOp
embedAllMessages
Re-exports embedAllMessages
EmbeddedWalletSignerFn
Re-exports EmbeddedWalletSignerFn
embedMessage
Re-exports embedMessage
ensureDefaultFoldersOp
Re-exports ensureDefaultFoldersOp
FileMetadata
Re-exports FileMetadata
FlushResult
Re-exports FlushResult
generateConversationId
Re-exports generateConversationId
generateEmbedding
Re-exports generateEmbedding
generateEmbeddings
Re-exports generateEmbeddings
getAllVaultFoldersOp
Re-exports getAllVaultFoldersOp
getAllVaultMemoriesOp
Re-exports getAllVaultMemoriesOp
getAllVaultMemoryContentsOp
Re-exports getAllVaultMemoryContentsOp
getCachedServerTools
Re-exports getCachedServerTools
getServerTools
Re-exports getServerTools
getUnfiledVaultMemoriesOp
Re-exports getUnfiledVaultMemoriesOp
getVaultFolderMemoryCountOp
Re-exports getVaultFolderMemoryCountOp
getVaultMemoryOp
Re-exports getVaultMemoryOp
hasEncryptionKey
Re-exports hasEncryptionKey
MemoryEngineEmbeddingOptions
Re-exports MemoryEngineEmbeddingOptions
MemoryEngineResult
Re-exports MemoryEngineResult
MemoryEngineSearchOptions
Re-exports MemoryEngineSearchOptions
MemoryVaultToolOptions
Re-exports MemoryVaultToolOptions
moveMemoriesToFolderOp
Re-exports moveMemoriesToFolderOp
onKeyAvailable
Re-exports onKeyAvailable
PlatformStorage
Re-exports PlatformStorage
queueManager
Re-exports queueManager
QueueManager
Re-exports QueueManager
QueueStatus
Re-exports QueueStatus
requestEncryptionKey
Re-exports requestEncryptionKey
SDK_SCHEMA_VERSION
Re-exports SDK_SCHEMA_VERSION
sdkMigrations
Re-exports sdkMigrations
sdkModelClasses
Re-exports sdkModelClasses
sdkSchema
Re-exports sdkSchema
SearchSource
Re-exports SearchSource
ServerToolsOptions
Re-exports ServerToolsOptions
ServerToolsResponse
Re-exports ServerToolsResponse
SignMessageFn
Re-exports SignMessageFn
StoredChatCompletionUsage
Re-exports StoredChatCompletionUsage
StoredConversation
Re-exports StoredConversation
StoredMessage
Re-exports StoredMessage
StoredMessageWithSimilarity
Re-exports StoredMessageWithSimilarity
StoredVaultFolder
Re-exports StoredVaultFolder
StoredVaultFolderModel
Re-exports StoredVaultFolderModel
StoredVaultMemory
Re-exports StoredVaultMemory
StoredVaultMemoryModel
Re-exports StoredVaultMemoryModel
updateVaultFolderContextOp
Re-exports updateVaultFolderContextOp
updateVaultFolderOp
Re-exports updateVaultFolderOp
UpdateVaultFolderOptions
Re-exports UpdateVaultFolderOptions
updateVaultMemoryEmbeddingOp
Re-exports updateVaultMemoryEmbeddingOp
updateVaultMemoryOp
Re-exports updateVaultMemoryOp
UpdateVaultMemoryOptions
Re-exports UpdateVaultMemoryOptions
useCredits
Re-exports useCredits
UseCreditsOptions
Re-exports UseCreditsOptions
UseCreditsResult
Re-exports UseCreditsResult
useEncryption
Re-exports useEncryption
useModels
Re-exports useModels
UseModelsResult
Re-exports UseModelsResult
VaultFolderOperationsContext
Re-exports VaultFolderOperationsContext
VaultMemoryOperationsContext
Re-exports VaultMemoryOperationsContext
VaultSaveOperation
Re-exports VaultSaveOperation
WalletPoller
Re-exports WalletPoller