Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.0%) to scientific vocabulary
Keywords
Repository
The Operating System for Agents
Basic Info
- Host: GitHub
- Owner: SmythOS
- License: mit
- Language: TypeScript
- Default Branch: main
- Homepage: https://smythos.com
- Size: 24 MB
Statistics
- Stars: 556
- Watchers: 4
- Forks: 59
- Open Issues: 8
- Releases: 0
Topics
Metadata Files
README.md
SmythOS - The Operating System for Agentic AI
Everything you need to build, deploy, and manage intelligent AI agents at scale. SmythOS is designed with a philosophy inspired by operating system kernels, ensuring a robust and scalable foundation for AI agents.
SDK Documentation | SRE Core Documentation | Code Examples
Why SmythOS exists
- Shipping production-ready AI agents shouldn’t feel like rocket science.
- Autonomy and control can, and must, coexist.
- Security isn’t an add-on; it’s built-in.
- The coming Internet of Agents must stay open and accessible to everyone.
Design Principles
SmythOS provides a complete Operating System for Agentic AI. Just as traditional operating systems manage resources and provide APIs for applications, SmythOS manages AI resources and provides a unified SDK that works from development to production.

Unified Resource Abstraction
SmythOS provides a unified interface for all resources, ensuring consistency and simplicity across your entire AI platform. Whether you're storing a file locally, on S3, or any other storage provider, you don't need to worry about the underlying implementation details. SmythOS offers a powerful abstraction layer where all providers expose the same functions and APIs.
This principle applies to all services - not just storage. Whether you're working with VectorDBs, cache (Redis, RAM), LLMs (OpenAI, Anthropic), or any other resource, the interface remains consistent across providers.
This approach makes your AI platform easy to scale and incredibly flexible. You can seamlessly swap between different providers to test performance, optimize costs, or meet specific requirements without changing a single line of your business logic.
Key Benefits:
- Agent-First Design: Built specifically for AI agent workloads
- Developer-Friendly: Simple SDK that scales from development to production
- Modular Architecture: Extensible connector system for any infrastructure
- Production-Ready: Scalable, observable, and battle-tested
- Enterprise Security: Built-in access control and secure credential management
Quick Start
We made a great tutorial that's really worth watching:
Method 1: Using the CLI (Recommended)
Install the CLI globally and create a new project:
bash
npm i -g @smythos/cli
sre create
The CLI will guide you step-by-step to create your SDK project with the right configuration for your needs.
Method 2: Direct SDK Installation
Add the SDK directly to your existing project:
bash
npm install @smythos/sdk
Check the Examples, documentation and Code Templates to get started.
Note: If you face an issue with the CLI or with your code, set environment variable LOG_LEVEL="debug" and run your code again. Then share the logs with us, it will help diagnose the problem.
Repository Structure
This monorepo contains three main packages:
SRE (Smyth Runtime Environment) - packages/core
The SRE is the core runtime environment that powers SmythOS. Think of it as the kernel of the AI agent operating system.
Features:
- Modular Architecture: Pluggable connectors for every service (Storage, LLM, VectorDB, Cache, etc.)
- Security-First: Built-in Candidate/ACL system for secure resource access
- Resource Management: Intelligent memory, storage, and compute management
- Agent Orchestration: Complete agent lifecycle management
- 40+ Components: Production-ready components for AI, data processing, and integrations
Supported Connectors:
- Storage: Local, S3, Google Cloud, Azure
- LLM: OpenAI, Anthropic, Google AI, AWS Bedrock, Groq, Perplexity
- VectorDB: Pinecone, Milvus, RAMVec
- Cache: RAM, Redis
- Vault: JSON File, AWS Secrets Manager, HashiCorp
SDK - packages/sdk
The SDK provides a clean, developer-friendly abstraction layer over the SRE runtime. It's designed for simplicity without sacrificing power.
Why Use the SDK:
- Simple API: Clean, intuitive interface that's easy to learn
- Type-Safe: Full TypeScript support with IntelliSense
- Production-Ready: Same code works in development and production
- Configuration-Independent: Business logic stays unchanged as infrastructure scales
CLI - packages/cli
The SRE CLI helps you get started quickly with scaffolding and project management.
Code examples
The SDK allows you to build agents with code or load and run a .smyth file. .smyth is the extension of agents built with our SmythOS builder.
Example 1 : load and run an agent from .smyth file
```typescript async function main() { const agentPath = path.resolve(__dirname, 'my-agent.smyth');
//Importing the agent workflow
const agent = Agent.import(agentPath, {
model: Model.OpenAI('gpt-4o'),
});
//query the agent and get the full response
const result = await agent.prompt('Hello, how are you ?');
console.log(result);
} ```
Want stream mode ? easy
Click to expand: Stream Mode Example - Real-time response streaming with events
```typescript const events = await agent.prompt('Hello, how are you ?').stream(); events.on('content', (text) => { console.log('content'); }); events.on('end', /*... handle end ... */) events.on('usage', /*... collect agent usage data ... */) events.on('toolCall', /*... ... */) events.on('toolResult', /*... ... */) ... ```Want chat mode ? easy
Click to expand: Chat Mode Example - Conversational agent with memory
```typescript const chat = agent.chat(); //from there you can use the prompt or prompt.stream to handle it let result = await chat.prompt("Hello, I'm Smyth") console.log(result); result = await chat.prompt('Do you remember my name ?"); console.log(result); //the difference between agent.prompt() and chat.prompt() is that the later remembers the conversation ```Example 2 : Article Writer Agent
In this example we are coding the agent logic with the help of the SDK elements.
Click to expand: Complete Article Writer Agent - Full example using LLM + VectorDB + Storage
```typescript import { Agent, Model } from '@smythos/sdk'; async function main() { // Create an intelligent agent const agent = new Agent({ name: 'Article Writer', model: 'gpt-4o', behavior: 'You are a copy writing assistant. The user will provide a topic and you have to write an article about it and store it.', }); // Add a custom skill that combines multiple AI capabilities agent.addSkill({ id: 'AgentWriter_001', name: 'WriteAndStoreArticle', description: 'Writes an article about a given topic and stores it', process: async ({ topic }) => { // VectorDB - Search for relevant context const vec = agent.vectordb.Pinecone({ namespace: 'myNameSpace', indexName: 'demo-vec', pineconeApiKey: process.env.PINECONE_API_KEY, embeddings: Model.OpenAI('text-embedding-3-large'), }); const searchResult = await vec.search(topic, { topK: 10, includeMetadata: true, }); const context = searchResult.map((e) => e?.metadata?.text).join('\n'); // LLM - Generate the article const llm = agent.llm.OpenAI('gpt-4o-mini'); const result = await llm.prompt(`Write an article about ${topic} using the following context: ${context}`); // Storage - Save the article const storage = agent.storage.S3({ /*... S3 Config ...*/ }); const uri = await storage.write('article.txt', result); return `The article has been generated and stored. Internal URI: ${uri}`; }, }); // Use the agent const result = await agent.prompt('Write an article about Sakura trees'); console.log(result); } main().catch(console.error); ```Architecture Highlights
Built-in Security
Security is a core tenant of SRE. Every operation requires proper authorization through the Candidate/ACL system, ensuring that agents only access resources they are permitted to.
typescript
const candidate = AccessCandidate.agent(agentId);
const storage = ConnectorService.getStorageConnector().user(candidate);
await storage.write('data.json', content);
Development to Production Evolution
Your business logic stays identical while infrastructure scales: When you use the SDK, SmythOS Runtime Environment will be implicitly initialized with general connectors that covers standard agent use cases.
Click to expand: Basic SRE Setup - Default development configuration
```typescript // you don't need to explicitly initialize SRE // we are just showing you how it is initialized internally // const sre = SRE.init({ // Cache: { Connector: 'RAM' }, // Storage: { Connector: 'Local' }, // Log: { Connector: 'ConsoleLog' }, // }); async function main() { // your agent logic goes here } main(); ```But you can explicitly initialize SRE with other built-in connectors, or make your own Use cases :
- You want to use a custom agents store
- You want to store your API keys and other credentials in a more secure vault
- You need enterprise grade security and data isolation
- ...
Click to expand: Production SRE Setup - Enterprise-grade configuration with custom connectors
```typescript const sre = SRE.init({ Account: { Connector: 'EnterpriseAccountConnector', Settings: { ... } }, Vault: { Connector: 'Hashicorp', Settings: { url: 'https://vault.company.com' } }, Cache: { Connector: 'Redis', Settings: { url: 'redis://prod-cluster' } }, Storage: { Connector: 'S3', Settings: { bucket: 'company-ai-agents' } }, VectorDB: { Connector: 'Pinecone', Settings: { indexName: 'company-ai-agents' } }, Log: { Connector: 'CustomLogStore'}, }); async function main() { // your agent logic goes here } main(); ```Component System
40+ production-ready components for every AI use case. These components can be invoked programmatically or through the symbolic representation of the agent workflow (the .smyth file).
- AI/LLM:
GenAILLM,ImageGen,LLMAssistant - External:
APICall,WebSearch,WebScrape,HuggingFace - Data:
DataSourceIndexer,DataSourceLookupJSONFilter - Logic:
LogicAND,LogicOR,Classifier,ForEach - Storage:
LocalStorage,S3 - Code:
ECMAScript,ServerlessCode
Key Features
| Feature | Description | | --------------------- | ------------------------------------------------------ | | Agent-Centric | Built specifically for AI agent workloads and patterns | | Secure by Default | Enterprise-grade security with data isolation | | High Performance | Optimized for high-throughput AI operations | | Modular | Swap any component without breaking your system | | Observable | Built-in monitoring, logging, and debugging tools | | Cloud-Native | Runs anywhere - local, cloud, edge, or hybrid | | Scalable | From development to enterprise production |
Contributing
We welcome contributions! Please see our Contributing Guide and Code of Conduct.
License
This project is licensed under the MIT License.
What's Next?
- We will release an open source visual agent IDE later this year.
- Support us at SmythOS
- Join our community to stay updated on new features, connectors, and capabilities.
/smɪθ oʊ ɛs/
Ride the llama. Skip the drama.
Owner
- Name: SmythOS
- Login: SmythOS
- Kind: organization
- Email: hello@smyth.ai
- Location: United States of America
- Website: https://smythos.com
- Repositories: 1
- Profile: https://github.com/SmythOS
The Operating System for Agentic AI
Citation (CITATION.cff)
cff-version: 1.0.0 message: "If you use this software, please cite it as below." authors: - family-names: "De Ridder" given-names: "Alexander" affiliation: "INK Content, Inc." website: "https://www.linkedin.com/in/adridder/" - family-names: "Kaddouri" given-names: "Alaa-eddine" affiliation: "INK Content, Inc." website: "https://www.linkedin.com/in/aekaddouri/" title: "SmythOS" date-released: 2025-06-12 url: "https://github.com/SmythOS"
GitHub Events
Total
- Create event: 34
- Issues event: 3
- Watch event: 353
- Delete event: 15
- Issue comment event: 43
- Member event: 2
- Public event: 1
- Push event: 151
- Pull request review comment event: 73
- Pull request review event: 76
- Pull request event: 112
- Fork event: 33
Last Year
- Create event: 34
- Issues event: 3
- Watch event: 353
- Delete event: 15
- Issue comment event: 43
- Member event: 2
- Public event: 1
- Push event: 151
- Pull request review comment event: 73
- Pull request review event: 76
- Pull request event: 112
- Fork event: 33
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 2
- Total pull requests: 69
- Average time to close issues: N/A
- Average time to close pull requests: 1 day
- Total issue authors: 2
- Total pull request authors: 11
- Average comments per issue: 0.0
- Average comments per pull request: 0.26
- Merged pull requests: 35
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 2
- Pull requests: 69
- Average time to close issues: N/A
- Average time to close pull requests: 1 day
- Issue authors: 2
- Pull request authors: 11
- Average comments per issue: 0.0
- Average comments per pull request: 0.26
- Merged pull requests: 35
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- dhruv-db (1)
- jarvishappy (1)
Pull Request Authors
- aladdin-edgy (32)
- zubairirfan96 (12)
- forhad-hosain (8)
- alaa-eddine (4)
- SyedZawwarAhmed (4)
- alaa-eddine-k (2)
- samme-abdul (2)
- ahmedcoder01 (1)
- adridder (1)
- ojusave (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- @types/node ^20.19.0 development
- ts-node ^10.9.2 development
- tsx ^4.7.0 development
- typescript ^5.3.0 development
- @smythos/sdk workspace:*
- @smythos/sre workspace:*
- chalk ^5.4.1
- dotenv ^16.5.0
- @vitest/coverage-v8 ^3.1.4 development
- vite-tsconfig-paths ^4.3.2 development
- vitest ^3.2.3 development
- list link:C:/Users/kaddouri/AppData/Local/pnpm/global/5/node_modules/list
- @rollup/plugin-commonjs ^28.0.3 development
- @rollup/plugin-json ^6.1.0 development
- @rollup/plugin-node-resolve ^15.3.1 development
- @rollup/pluginutils ^5.1.0 development
- @types/inquirer ^9.0.7 development
- @types/node ^20.19.0 development
- @types/update-notifier ^6.0.8 development
- cross-env ^7.0.3 development
- esbuild ^0.25.0 development
- glob ^11.0.3 development
- rollup-plugin-esbuild ^6.1.1 development
- rollup-plugin-sourcemaps ^0.6.3 development
- rollup-plugin-terser ^7.0.2 development
- rollup-plugin-typescript-paths ^1.5.0 development
- ts-node ^10.9.2 development
- typescript ^5.4.5 development
- @modelcontextprotocol/sdk ^1.12.1
- @oclif/core ^4.3.3
- @smythos/sdk workspace:*
- @smythos/sre workspace:*
- chalk ^5.3.0
- commander ^12.0.0
- express ^4.21.2
- inquirer ^9.2.15
- log-update ^6.1.0
- ora ^8.2.0
- pkce-challenge ^5.0.0
- update-notifier ^7.0.0
- @faker-js/faker ^8.4.1 development
- @istanbuljs/nyc-config-typescript ^1.0.2 development
- @rollup/plugin-json ^6.1.0 development
- @rollup/plugin-node-resolve ^15.2.3 development
- @rollup/pluginutils ^5.1.0 development
- @types/cookie-parser ^1.4.7 development
- @types/express ^4.17.23 development
- @types/express-session ^1.18.0 development
- @types/lodash ^4.17.10 development
- @types/node ^20.19.0 development
- cross-env ^7.0.3 development
- ctix ^2.7.1 development
- dependency-cruiser ^16.3.3 development
- esbuild ^0.25.0 development
- knip ^5.23.1 development
- nyc ^17.0.0 development
- pkg ^5.8.1 development
- rollup-plugin-copy ^3.5.0 development
- rollup-plugin-esbuild ^6.1.1 development
- rollup-plugin-sourcemaps ^0.6.3 development
- rollup-plugin-terser ^7.0.2 development
- rollup-plugin-typescript-paths ^1.5.0 development
- rollup-plugin-typescript2 ^0.36.0 development
- source-map-support ^0.5.21 development
- typedoc ^0.28.5 development
- typedoc-github-theme ^0.3.0 development
- typescript ^5.4.5 development
- @anthropic-ai/sdk ^0.39.0
- @apidevtools/json-schema-ref-parser ^11.6.4
- @aws-sdk/client-bedrock-runtime ^3.826.0
- @aws-sdk/client-iam ^3.826.0
- @aws-sdk/client-lambda ^3.826.0
- @aws-sdk/client-s3 ^3.826.0
- @aws-sdk/client-secrets-manager ^3.826.0
- @google-cloud/vertexai ^1.7.0
- @google/generative-ai ^0.14.1
- @huggingface/inference ^2.8.0
- @modelcontextprotocol/sdk ^1.10.1
- @pinecone-database/pinecone ^3.0.0
- @runware/sdk-js ^1.1.36
- @smithy/smithy-client ^4.4.3
- @zilliz/milvus2-sdk-node ^2.5.11
- acorn ^8.14.1
- axios ^1.7.2
- chokidar ^4.0.3
- commander ^11.1.0
- cookie-parser ^1.4.7
- cors ^2.8.5
- dayjs ^1.11.11
- dotenv ^16.4.5
- eventsource ^3.0.2
- express ^4.21.2
- express-async-handler ^1.2.0
- express-session ^1.18.1
- file-type ^19.0.0
- form-data ^4.0.3
- gpt-tokenizer ^2.2.1
- groq-sdk ^0.6.1
- image-size ^1.1.1
- ioredis ^5.4.1
- isbinaryfile ^5.0.2
- joi ^17.13.1
- js-yaml ^4.1.0
- jsonrepair ^3.8.0
- jsonwebtoken ^9.0.2
- jwks-rsa ^3.1.0
- lodash ^4.17.21
- memorystore ^1.6.7
- mime ^4.0.3
- multer ^1.4.5-lts.1
- mysql2 ^3.11.3
- oauth-1.0a ^2.2.6
- openai ^4.103.0
- p-limit ^6.1.0
- pkce-challenge ^5.0.0
- qs ^6.13.0
- rate-limiter-flexible ^5.0.3
- readline-sync ^1.4.10
- socket.io-client ^4.8.1
- socks-proxy-agent ^8.0.4
- uuid ^10.0.0
- winston ^3.13.0
- winston-transport ^4.7.0
- xxhashjs ^0.2.2
- zip-lib ^1.0.5
- @rollup/plugin-json ^6.1.0 development
- @rollup/pluginutils ^5.1.0 development
- cross-env ^7.0.3 development
- ctix ^2.7.1 development
- esbuild ^0.25.0 development
- rollup-plugin-esbuild ^6.1.1 development
- rollup-plugin-sourcemaps ^0.6.3 development
- rollup-plugin-terser ^7.0.2 development
- rollup-plugin-typescript-paths ^1.5.0 development
- typedoc ^0.28.5 development
- typedoc-github-theme ^0.3.0 development
- typescript ^5.4.5 development
- @smythos/sre workspace:*
- canvas ^3.1.0
- chalk ^5.4.1
- events ^3.3.0
- mammoth ^1.9.1
- pdfjs-dist ^4.0.379
- source-map-support ^0.5.21
- yauzl ^3.2.0
- 315 dependencies
- actions/checkout v4 composite
- peaceiris/actions-gh-pages v4 composite

