-
-
Connections - Local , Hybrid or Cloud supported
-
Native SHARMAN (Windows )
-
Review the activity (what happened and why )
-
Ring Integration
-
Get your Home Inbox to handle all the events at home
-
Get Schedule Your home over mcp or Remind Someone Through Alexa+ At home
-
Sharman's assistance over Streamable MCP Server
-
Alexa+ Integeration for Talking to Sharman for day to day tasks or general convo.
Inspiration
AI assistants are becoming capable of reading our emails, using tools, interacting with services, and taking actions on our behalf.
But intelligence and authority are not the same thing.
An AI agent may make a perfectly reasonable decision and still attempt something it should never be allowed to do. A home assistant may recognize an expected delivery and conclude that unlocking the door would be helpful. A productivity assistant may decide to send an email when the user only wanted a draft.
The problem is not always malicious AI.
Sometimes the AI is simply wrong, overconfident, manipulated, or too proactive.
That led to the central idea behind SHARMAN:
AI can propose an action, but it cannot grant itself authority.
SHARMAN is a local-first, security-first personal AI runtime for Windows, built around bounded, permission-aware workflows.
Instead of giving one permanently powerful AI access to a user's entire digital life, SHARMAN gives task-specific workflows only the capabilities they need, for only as long as they need them.
The goal is to make personal AI:
local, scoped, temporary, auditable, and revocable.
What it does
SHARMAN connects personal productivity, conversational AI, smart-home context, and external services through one permission-aware runtime.
It currently includes:
- Local tasks and reminders
- Windows notifications
- Read-only Gmail intelligence
- Action and deadline extraction from emails
- Daily planning across inbox actions, tasks, and reminders
- Real Streamable HTTP MCP
- 11 typed MCP tools
- An Alexa+ style MCP experience
- Official Ring Developer Playground integration
- Live Ring device discovery, status, and event-history access
- Bounded Home workflows
- Permission ceilings for task-specific workflows
- Persistent results and audit traces
- Optional Amazon Bedrock / Nova explanations
- Public AWS-hosted demonstration
The important part is not simply that SHARMAN can connect to these services.
It is how access to them is controlled.
Personal AI without permanent authority
SHARMAN is designed as a personal AI runtime rather than a permanently privileged cloud assistant.
Sensitive integrations remain local wherever possible.
For example, the native Windows application connects to Gmail using read-only OAuth, while credentials are kept in Windows Credential Manager instead of being exposed through the public web application.
When SHARMAN needs to perform a task, it can run a bounded specialist workflow:
User request
↓
SHARMAN Supervisor
↓
Task-specific workflow
↓
Minimum required capabilities
↓
Permission checks
↓
Tool execution
↓
Result + audit
↓
Workflow ends
Supporting many integrations does not mean every workflow gets access to all of them.
One workflow may read reminders but not email.
Another may inspect Home context but not control a lock.
Another may analyze inbox actions without being able to send messages.
Instead of giving one AI permanent access to your digital life, SHARMAN gives bounded workflows the minimum authority they need for the task.
Permission-aware execution
Every sensitive action passes through deterministic permission checks.
For example, SHARMAN's Home demonstration includes a bounded VisitorAgent.
It can:
✓ read Ring/Home context
✓ inspect expected-visit information
✓ prepare an Alexa response
✓ propose reminders
But it cannot:
✗ unlock a door
✗ execute arbitrary system commands
✗ make purchases
If the VisitorAgent requests:
Requested capability: door.unlock
Required authority: HIGH_RISK
VisitorAgent ceiling: LOW_RISK
SHARMAN returns:
DENIED
The important point is that the model does not own the security boundary.
Even if an AI concludes that an action would be useful, it cannot increase its own authority.
A smarter agent should not automatically become a more privileged agent.
How we built it
The native SHARMAN application is built with:
- Rust
- Tauri 2
- React
- TypeScript
- SQLite
- Windows Credential Manager
- Windows notifications
The web and MCP runtime uses:
- Node.js
- TypeScript
- Express
- Model Context Protocol SDK
- Zod
- React
- Vite
Amazon technologies used include:
- AWS ECS
- Amazon Bedrock
- Amazon Nova
- Ring Developer Platform
- Alexa+ style MCP integration
The core execution model is:
User / native app / web / Alexa+ style client
↓
SHARMAN Supervisor
↓
Bounded workflow
↓
Deterministic permissions
↓
Permitted tool
↓
Result + audit
Home information follows a similar path:
Ring API / supported event / controlled simulation
↓
Parse + normalize
↓
HomeEvent
↓
Bounded workflow
↓
Permission decision
↓
Result + audit
The AI layer can reason about context.
SHARMAN decides what can actually happen.
Alexa+ and MCP
SHARMAN implements a real Streamable HTTP Model Context Protocol server.
The current MCP runtime exposes 11 typed tools covering tasks, reminders, inbox actions, assistant requests, Home state, Ring events, and Bedrock explanations.
The Alexa+ style web experience acts as a real MCP client.
For example, when the user asks:
“What tasks do I have today?”
the interface sends a real MCP tools/call request.
The demo visibly shows:
MCP request
↓
Selected tool
↓
Permission level
↓
Execution result
Alexa+ acts as the conversational surface.
SHARMAN remains the execution and authority layer.
Alexa+ is how the user talks to SHARMAN. SHARMAN decides what is allowed to happen.
Gmail Inbox Intelligence
The native Windows application connects to Gmail using read-only OAuth with PKCE and a loopback callback.
SHARMAN can identify:
- Actionable messages
- Assessments
- Interviews
- Application updates
- Follow-ups
- Deadlines
- Recent messages
- Unread messages
The integration is intentionally read-only.
SHARMAN does not send, delete, archive, label, or modify email.
OAuth revocation and fresh reconnection were also tested so SHARMAN does not silently continue using a revoked authorization.
This follows the same principle:
Give AI the minimum capability required for the task instead of unrestricted account access.
The public web demonstration intentionally uses isolated demo data, while private Gmail data, native tasks, reminders, and Windows notifications remain inside the user's Windows runtime.
Ring Developer Platform integration
SHARMAN integrates with the official Ring Developer Playground.
The Ring client implements:
listDevices()
getDeviceStatus(deviceId)
getEventHistory(deviceId)
Live validation successfully confirmed:
- Ring device discovery
- Device status
- Event history
The SHARMAN Home interface can display:
- Official API connection status
- Device online/offline state
- Last reported time
- Latest Ring event type
- Event history
- Source and provenance
Ring information is normalized while preserving its original event type, timestamp, device identity, and provenance.
This matters because an AI system should not invent certainty.
For example, a Ring on_demand live-view session remains an on_demand session.
SHARMAN does not turn it into a person, package, visitor, or threat unless the source information actually supports that conclusion.
The real Ring integration and SHARMAN's controlled Home safety simulations are intentionally kept separate.
Smart Home example
Consider an expected delivery.
A temporary VisitorAgent can inspect Home context, check an expected-delivery window, prepare an Alexa response, and request further action.
But it cannot directly unlock the door.
A future delivery workflow could look like:
Delivery information
↓
Temporary DeliveryAgent
↓
Expected delivery context
↓
Delivery tracking
↓
Alexa+ updates
↓
Access request
↓
Deterministic verification
↓
One-time gate access
The AI workflow would still not directly own the lock.
A separate deterministic AccessController could verify factors such as a delivery credential, OTP, passkey, time window, or user policy before issuing tightly scoped one-time access.
The separation is:
AI understands and requests.
Policy authorizes.
A deterministic controller executes.
Amazon Bedrock
SHARMAN optionally uses Amazon Bedrock with Nova 2 Lite as an explanation layer.
Bedrock does not determine permissions.
The deterministic permission decision happens first.
For example:
door.unlock
↓
Required: HIGH_RISK
VisitorAgent: LOW_RISK
↓
DENIED
Only after that result is fixed can Bedrock generate a natural-language explanation.
Bedrock may explain why an action was blocked, but it cannot turn:
DENIED
into:
ALLOWED
If Bedrock is disabled or unavailable, SHARMAN can fall back to a deterministic local explanation.
This means the safety boundary does not depend on cloud inference.
Bedrock explains the decision; it does not make the decision.
And:
Reasoning can be probabilistic. Authority cannot be.
Challenges we ran into
Separating real integrations from simulations
One of the biggest challenges was ensuring that SHARMAN never presented simulated or incomplete information as a real external event.
Ring Developer Playground live-view activity can appear in Event History as on_demand.
It would have been easy to interpret that as motion or a visitor.
Instead, SHARMAN preserves the actual source event type and keeps real Ring data separate from controlled SHARMAN safety simulations.
Keeping personal information private
The public demonstration should never expose the developer's Gmail account, OAuth credentials, local SQLite databases, or Windows notification data.
We therefore separated the public judge-facing environment from the private native runtime.
The web experience demonstrates the real architecture while personal integrations remain local.
Designing agents with limited authority
It is easy to build one agent and give it every available tool.
SHARMAN deliberately does the opposite.
Capabilities are explicit and workflows receive only the permissions they require.
This makes failures easier to contain and makes system behavior more predictable.
OAuth lifecycle and recovery
Authentication does not end after the first successful login.
SHARMAN also had to handle authorization revocation, stale credentials, fresh consent, and reconnection without silently substituting sample data for unavailable live information.
Optional cloud reasoning
Bedrock needed to remain optional.
SHARMAN therefore makes the deterministic decision first and validates any generated explanation afterward.
Cloud failure must never weaken the permission boundary.
Accomplishments that we're proud of
SHARMAN currently includes:
- A working native Windows personal assistant
- Real Streamable HTTP MCP
- 11 typed MCP tools
- Alexa+ style MCP experience
- Read-only Gmail intelligence
- OAuth revoke/reconnect handling
- Local tasks and reminders
- Visible Windows notifications
- Bounded Daily Planner workflows
- Bounded VisitorAgent workflows
- Deterministic capability ceilings
- Persistent audit traces
- Live official Ring Developer Playground API validation
- Ring device discovery
- Ring device status
- Ring Event History
- Optional live-validated Amazon Bedrock / Nova explanations
- Local deterministic explanation fallback
- Public AWS ECS deployment
- Native, MCP, Ring, Home, browser, and production-build validation
But the accomplishment we are most proud of is the architecture underneath those features:
The AI can request an action, but it cannot grant itself the permission required to execute it.
What we learned
The biggest lesson from SHARMAN was that AI safety is not only a prompting problem.
A model can be:
- Wrong
- Overconfident
- Manipulated
- Confused
- Too proactive
- Operating with incomplete context
The surrounding system should assume these situations can happen.
Instead of relying entirely on the model to behave correctly, SHARMAN places the authority boundary outside the model.
We also learned how important provenance is.
SHARMAN distinguishes between information originating from:
- A real API response
- A captured response
- A documentation-derived test fixture
- A controlled simulation
- A deterministic workflow
- An AI-generated explanation
This makes the system easier to debug, safer to operate, and easier to trust.
What's next for SHARMAN
The next step is to make SHARMAN's bounded workflow model richer while preserving the same authority boundaries.
Future workflows could include:
- Temporary delivery agents
- Verified one-time visitor access
- Elder-care check-ins
- Night Guard workflows
- Away-from-home monitoring
- Calendar-aware planning
- Background research workflows
- Secure remote household coordination
- Passkey, NFC, or OTP-based access verification
Imagine ordering food or medicine.
SHARMAN could identify an expected delivery, create a temporary workflow only for that delivery, monitor its progress, notify the user through Alexa+, and request one-time gate access when the verified delivery reaches the home.
After the task is complete, the temporary workflow and its delegated authority end.
That captures the long-term direction of SHARMAN:
Autonomy should be scoped, temporary, auditable, and revocable.
SHARMAN is not about making AI less capable.
It is about creating an environment where increasingly capable AI can be trusted with increasingly useful tasks without automatically receiving unlimited authority.
SHARMAN
AI can be autonomous without being unrestricted.
Built With
- amazon
- amazon-bedrock
- amazon-nova
- docker
- ecs
- express.js
- gmail-api
- model-context-protocol-(mcp)
- node.js
- oauth-2.0-with-pkce
- react
- ring-developer-platform
- rust
- sqlite
- tauri-2
- typescript
- vite
Log in or sign up for Devpost to join the conversation.