home / skills / openclaw / skills / supernal-interface
This skill helps you expose Python functions as AI-callable tools and wire them to CopilotKit adapters for seamless AI control.
npx playbooks add skill openclaw/skills --skill supernal-interfaceReview the files below or copy the command above to add this skill to your agents.
---
name: supernal-interface
description: Universal AI Interface framework for making applications AI-controllable. Use when adding AI tool decorators, setting up chat adapters, creating AI-callable functions, or integrating CopilotKit.
---
# Supernal Interface - AI Controllability Framework
## Installation
```bash
npm install @supernal/interface
```
## Core Concept
Decorate functions → AI can call them with full type safety.
## Quick Start
### 1. Decorate Functions
```typescript
import { Tool } from '@supernal/interface';
class TodoApp {
@Tool({
name: 'add_todo',
description: 'Add a new todo item',
category: 'productivity'
})
async addTodo(text: string): Promise<Todo> {
return this.db.create({ text, done: false });
}
@Tool({
name: 'complete_todo',
description: 'Mark a todo as complete'
})
async completeTodo(id: string): Promise<void> {
await this.db.update(id, { done: true });
}
}
```
### 2. Set Up Adapter
```typescript
import { createCopilotKitAdapter, ChatUIProvider } from '@supernal/interface';
const adapter = createCopilotKitAdapter({
autoRegisterTools: true,
autoRegisterReadables: true
});
function App() {
return (
<ChatUIProvider adapter={adapter}>
<YourApp />
</ChatUIProvider>
);
}
```
### 3. Done
AI assistants can now discover and call your decorated functions.
## Decorators
| Decorator | Purpose |
|-----------|---------|
| `@Tool` | Expose function as AI-callable tool |
| `@ToolProvider` | Class containing multiple tools |
| `@Component` | React component with AI context |
## Adapters
### CopilotKit (recommended)
```typescript
import { createCopilotKitAdapter } from '@supernal/interface';
const adapter = createCopilotKitAdapter({
autoRegisterTools: true
});
```
### Custom Adapter
```typescript
import { ChatUIAdapter } from '@supernal/interface';
class MyAdapter implements ChatUIAdapter {
name = 'my-adapter';
registerTools(tools) { /* convert to your format */ }
render(props) { return <MyChat {...props} />; }
}
```
## React Hooks
```typescript
import { useToolBinding, usePersistedState, useChatWithContext } from '@supernal/interface';
// Bind a tool to component state
const [todos, setTodos] = useToolBinding('todos', []);
// Persist state across sessions
const [prefs, setPrefs] = usePersistedState('user-prefs', defaults);
// Chat with app context
const { messages, send } = useChatWithContext();
```
## Storage Adapters
```typescript
import { StateManager, LocalStorageAdapter } from '@supernal/interface/storage';
const storage = StateManager.getInstance('myapp', new LocalStorageAdapter());
await storage.setState('user', { name: 'Alice' });
```
## Testing
```typescript
import { GherkinParser, TestRunner } from '@supernal/interface/testing';
const feature = GherkinParser.parseFeature(gherkinText);
const tests = await TestRunner.generateTests({ framework: 'jest' });
```
## Enterprise Features
Available at supernal.ai/enterprise:
- Auto test generation from decorators
- Story system (50-80% performance boost)
- Architecture visualization
- Multi-model routing
- Audit & compliance logging
This skill is a universal AI interface framework that makes applications AI-controllable by exposing functions, state, and components as AI-callable tools. It provides decorators, adapters, React hooks, storage and testing utilities to let AI assistants discover and safely call application logic. Use it to add typed AI tool bindings, integrate chat adapters like CopilotKit, or enable automated testing and state persistence.
You mark functions, classes, and components with decorators (for example @Tool, @ToolProvider, @Component) so the framework can register them as AI-callable endpoints. An adapter layer (CopilotKit or custom ChatUIAdapter) translates those registered tools into the host chat UI. React hooks and a storage manager let UI components bind to tool-backed state and persist data across sessions. Optional testing and enterprise features generate tests, route models, and provide auditing.
Do I need CopilotKit to use the framework?
No. CopilotKit is recommended for an out-of-the-box chat adapter, but you can implement a custom ChatUIAdapter to integrate with any chat UI.
How do I secure tools that perform destructive actions?
Mark such operations clearly, limit auto-registration, require explicit user confirmation in the adapter, and enable audit logging for enterprise deployments.
Can I use the framework with existing state management?
Yes. Use the provided StateManager adapters (or implement your own) to bridge existing storage; hooks like useToolBinding can wrap persisted state in tool bindings.