A free, open-source “computer freeze” tool?
I’m keen to hear everyone’s thoughts on building a program that can effectively “freeze” your computer so no changes are written to the drive.
Basically a modern version of Toolwiz Time Freeze (link to Wayback Machine). I have tried to reach the owners, but I can't find any recent contact information. My use case is for when we are sharing devices in a setting where Windows Enterprise is unrealistic.
I know Deepfreeze exists, but I would rather use something free and open source. My primary objective is to get a hold of someone at Timefreeze to ask for the code, but I don't know how realistic this is.
https://redd.it/1mmi00a
@r_opensource
I’m keen to hear everyone’s thoughts on building a program that can effectively “freeze” your computer so no changes are written to the drive.
Basically a modern version of Toolwiz Time Freeze (link to Wayback Machine). I have tried to reach the owners, but I can't find any recent contact information. My use case is for when we are sharing devices in a setting where Windows Enterprise is unrealistic.
I know Deepfreeze exists, but I would rather use something free and open source. My primary objective is to get a hold of someone at Timefreeze to ask for the code, but I don't know how realistic this is.
https://redd.it/1mmi00a
@r_opensource
KmpEssentials is a library that contains apis (40+ Modules) to accelerate your development. Everything from managing the Battery, File System, getting Package information, or taking Photos. Supports iOS, Android, AppleWatch, JVM & JS
https://github.com/Ares-Defence-Labs/KmpEssentials
https://redd.it/1mmk3wg
@r_opensource
https://github.com/Ares-Defence-Labs/KmpEssentials
https://redd.it/1mmk3wg
@r_opensource
GitHub
GitHub - Ares-Defence-Labs/KmpEssentials: KmpEssentials is a library that contains apis (40+ Modules) to accelerate your development.…
KmpEssentials is a library that contains apis (40+ Modules) to accelerate your development. Everything from managing the Battery, File System, getting Package information, or taking Photos. Support...
Pybotchi 101: Simple MCP Integration
# As Client
### Prerequisite
- LLM Declaration
```python
from pybotchi import LLM
from langchain_openai import ChatOpenAI
LLM.add(
base = ChatOpenAI(.....)
)
```
- MCP Server (`MCP-Atlassian`)
> docker run --rm -p 9000:9000 -i --env-file your-env.env ghcr.io/sooperset/mcp-atlassian:latest --transport streamable-http --port 9000 -vv
### Simple Pybotchi Action
```python
from pybotchi import ActionReturn, MCPAction, MCPConnection
class AtlassianAgent(MCPAction):
"""Atlassian query."""
__mcp_connections__ = [
MCPConnection("jira", "http://0.0.0.0:9000/mcp", require_integration=False)
]
async def post(self, context):
readable_response = await context.llm.ainvoke(context.prompts)
await context.add_response(self, readable_response.content)
return ActionReturn.END
```
- `post` is only recommended if mcp tools responses is not in natural language yet.
- You can leverage `post` or `commit_context` for final response generation
### View Graph
```python
from asyncio import run
from pybotchi import graph
print(run(graph(AtlassianAgent)))
```
#### **Result**
```
flowchart TD
mcp.jira.JiraCreateIssueLink[mcp.jira.JiraCreateIssueLink]
mcp.jira.JiraUpdateSprint[mcp.jira.JiraUpdateSprint]
mcp.jira.JiraDownloadAttachments[mcp.jira.JiraDownloadAttachments]
mcp.jira.JiraDeleteIssue[mcp.jira.JiraDeleteIssue]
mcp.jira.JiraGetTransitions[mcp.jira.JiraGetTransitions]
mcp.jira.JiraUpdateIssue[mcp.jira.JiraUpdateIssue]
mcp.jira.JiraSearch[mcp.jira.JiraSearch]
mcp.jira.JiraGetAgileBoards[mcp.jira.JiraGetAgileBoards]
mcp.jira.JiraAddComment[mcp.jira.JiraAddComment]
mcp.jira.JiraGetSprintsFromBoard[mcp.jira.JiraGetSprintsFromBoard]
mcp.jira.JiraGetSprintIssues[mcp.jira.JiraGetSprintIssues]
__main__.AtlassianAgent[__main__.AtlassianAgent]
mcp.jira.JiraLinkToEpic[mcp.jira.JiraLinkToEpic]
mcp.jira.JiraCreateIssue[mcp.jira.JiraCreateIssue]
mcp.jira.JiraBatchCreateIssues[mcp.jira.JiraBatchCreateIssues]
mcp.jira.JiraSearchFields[mcp.jira.JiraSearchFields]
mcp.jira.JiraGetWorklog[mcp.jira.JiraGetWorklog]
mcp.jira.JiraTransitionIssue[mcp.jira.JiraTransitionIssue]
mcp.jira.JiraGetProjectVersions[mcp.jira.JiraGetProjectVersions]
mcp.jira.JiraGetUserProfile[mcp.jira.JiraGetUserProfile]
mcp.jira.JiraGetBoardIssues[mcp.jira.JiraGetBoardIssues]
mcp.jira.JiraGetProjectIssues[mcp.jira.JiraGetProjectIssues]
mcp.jira.JiraAddWorklog[mcp.jira.JiraAddWorklog]
mcp.jira.JiraCreateSprint[mcp.jira.JiraCreateSprint]
mcp.jira.JiraGetLinkTypes[mcp.jira.JiraGetLinkTypes]
mcp.jira.JiraRemoveIssueLink[mcp.jira.JiraRemoveIssueLink]
mcp.jira.JiraGetIssue[mcp.jira.JiraGetIssue]
mcp.jira.JiraBatchGetChangelogs[mcp.jira.JiraBatchGetChangelogs]
__main__.AtlassianAgent --> mcp.jira.JiraCreateIssueLink
__main__.AtlassianAgent --> mcp.jira.JiraGetLinkTypes
__main__.AtlassianAgent --> mcp.jira.JiraDownloadAttachments
__main__.AtlassianAgent --> mcp.jira.JiraAddWorklog
__main__.AtlassianAgent --> mcp.jira.JiraRemoveIssueLink
__main__.AtlassianAgent --> mcp.jira.JiraCreateIssue
__main__.AtlassianAgent --> mcp.jira.JiraLinkToEpic
__main__.AtlassianAgent --> mcp.jira.JiraGetSprintsFromBoard
__main__.AtlassianAgent --> mcp.jira.JiraGetAgileBoards
__main__.AtlassianAgent --> mcp.jira.JiraBatchCreateIssues
__main__.AtlassianAgent --> mcp.jira.JiraSearchFields
__main__.AtlassianAgent --> mcp.jira.JiraGetSprintIssues
__main__.AtlassianAgent --> mcp.jira.JiraSearch
__main__.AtlassianAgent --> mcp.jira.JiraAddComment
__main__.AtlassianAgent --> mcp.jira.JiraDeleteIssue
__main__.AtlassianAgent --> mcp.jira.JiraUpdateIssue
__main__.AtlassianAgent --> mcp.jira.JiraGetProjectVersions
__main__.AtlassianAgent --> mcp.jira.JiraGetBoardIssues
__main__.AtlassianAgent --> mcp.jira.JiraUpdateSprint
__main__.AtlassianAgent --> mcp.jira.JiraBatchGetChangelogs
__main__.AtlassianAgent --> mcp.jira.JiraGetUserProfile
__main__.AtlassianAgent --> mcp.jira.JiraGetWorklog
__main__.AtlassianAgent --> mcp.jira.JiraGetIssue
__main__.AtlassianAgent --> mcp.jira.JiraGetTransitions
__main__.AtlassianAgent -->
# As Client
### Prerequisite
- LLM Declaration
```python
from pybotchi import LLM
from langchain_openai import ChatOpenAI
LLM.add(
base = ChatOpenAI(.....)
)
```
- MCP Server (`MCP-Atlassian`)
> docker run --rm -p 9000:9000 -i --env-file your-env.env ghcr.io/sooperset/mcp-atlassian:latest --transport streamable-http --port 9000 -vv
### Simple Pybotchi Action
```python
from pybotchi import ActionReturn, MCPAction, MCPConnection
class AtlassianAgent(MCPAction):
"""Atlassian query."""
__mcp_connections__ = [
MCPConnection("jira", "http://0.0.0.0:9000/mcp", require_integration=False)
]
async def post(self, context):
readable_response = await context.llm.ainvoke(context.prompts)
await context.add_response(self, readable_response.content)
return ActionReturn.END
```
- `post` is only recommended if mcp tools responses is not in natural language yet.
- You can leverage `post` or `commit_context` for final response generation
### View Graph
```python
from asyncio import run
from pybotchi import graph
print(run(graph(AtlassianAgent)))
```
#### **Result**
```
flowchart TD
mcp.jira.JiraCreateIssueLink[mcp.jira.JiraCreateIssueLink]
mcp.jira.JiraUpdateSprint[mcp.jira.JiraUpdateSprint]
mcp.jira.JiraDownloadAttachments[mcp.jira.JiraDownloadAttachments]
mcp.jira.JiraDeleteIssue[mcp.jira.JiraDeleteIssue]
mcp.jira.JiraGetTransitions[mcp.jira.JiraGetTransitions]
mcp.jira.JiraUpdateIssue[mcp.jira.JiraUpdateIssue]
mcp.jira.JiraSearch[mcp.jira.JiraSearch]
mcp.jira.JiraGetAgileBoards[mcp.jira.JiraGetAgileBoards]
mcp.jira.JiraAddComment[mcp.jira.JiraAddComment]
mcp.jira.JiraGetSprintsFromBoard[mcp.jira.JiraGetSprintsFromBoard]
mcp.jira.JiraGetSprintIssues[mcp.jira.JiraGetSprintIssues]
__main__.AtlassianAgent[__main__.AtlassianAgent]
mcp.jira.JiraLinkToEpic[mcp.jira.JiraLinkToEpic]
mcp.jira.JiraCreateIssue[mcp.jira.JiraCreateIssue]
mcp.jira.JiraBatchCreateIssues[mcp.jira.JiraBatchCreateIssues]
mcp.jira.JiraSearchFields[mcp.jira.JiraSearchFields]
mcp.jira.JiraGetWorklog[mcp.jira.JiraGetWorklog]
mcp.jira.JiraTransitionIssue[mcp.jira.JiraTransitionIssue]
mcp.jira.JiraGetProjectVersions[mcp.jira.JiraGetProjectVersions]
mcp.jira.JiraGetUserProfile[mcp.jira.JiraGetUserProfile]
mcp.jira.JiraGetBoardIssues[mcp.jira.JiraGetBoardIssues]
mcp.jira.JiraGetProjectIssues[mcp.jira.JiraGetProjectIssues]
mcp.jira.JiraAddWorklog[mcp.jira.JiraAddWorklog]
mcp.jira.JiraCreateSprint[mcp.jira.JiraCreateSprint]
mcp.jira.JiraGetLinkTypes[mcp.jira.JiraGetLinkTypes]
mcp.jira.JiraRemoveIssueLink[mcp.jira.JiraRemoveIssueLink]
mcp.jira.JiraGetIssue[mcp.jira.JiraGetIssue]
mcp.jira.JiraBatchGetChangelogs[mcp.jira.JiraBatchGetChangelogs]
__main__.AtlassianAgent --> mcp.jira.JiraCreateIssueLink
__main__.AtlassianAgent --> mcp.jira.JiraGetLinkTypes
__main__.AtlassianAgent --> mcp.jira.JiraDownloadAttachments
__main__.AtlassianAgent --> mcp.jira.JiraAddWorklog
__main__.AtlassianAgent --> mcp.jira.JiraRemoveIssueLink
__main__.AtlassianAgent --> mcp.jira.JiraCreateIssue
__main__.AtlassianAgent --> mcp.jira.JiraLinkToEpic
__main__.AtlassianAgent --> mcp.jira.JiraGetSprintsFromBoard
__main__.AtlassianAgent --> mcp.jira.JiraGetAgileBoards
__main__.AtlassianAgent --> mcp.jira.JiraBatchCreateIssues
__main__.AtlassianAgent --> mcp.jira.JiraSearchFields
__main__.AtlassianAgent --> mcp.jira.JiraGetSprintIssues
__main__.AtlassianAgent --> mcp.jira.JiraSearch
__main__.AtlassianAgent --> mcp.jira.JiraAddComment
__main__.AtlassianAgent --> mcp.jira.JiraDeleteIssue
__main__.AtlassianAgent --> mcp.jira.JiraUpdateIssue
__main__.AtlassianAgent --> mcp.jira.JiraGetProjectVersions
__main__.AtlassianAgent --> mcp.jira.JiraGetBoardIssues
__main__.AtlassianAgent --> mcp.jira.JiraUpdateSprint
__main__.AtlassianAgent --> mcp.jira.JiraBatchGetChangelogs
__main__.AtlassianAgent --> mcp.jira.JiraGetUserProfile
__main__.AtlassianAgent --> mcp.jira.JiraGetWorklog
__main__.AtlassianAgent --> mcp.jira.JiraGetIssue
__main__.AtlassianAgent --> mcp.jira.JiraGetTransitions
__main__.AtlassianAgent -->
GitHub
GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to over 420 million projects.
mcp.jira.JiraTransitionIssue
__main__.AtlassianAgent --> mcp.jira.JiraCreateSprint
__main__.AtlassianAgent --> mcp.jira.JiraGetProjectIssues
```
### Execute
```python
from asyncio import run
from pybotchi import Context
async def test() -> None:
"""Chat."""
context = Context(
prompts=[
{
"role": "system",
"content": "Use Jira Tool/s until user's request is addressed",
},
{
"role": "user",
"content": "give me one inprogress ticket currently assigned to me?",
},
]
)
await context.start(AtlassianAgent)
print(context.prompts[-1]["content"])
run(test())
```
#### **Result**
```
Here is one "In Progress" ticket currently assigned to you:
- Ticket Key: BAAI-244
- Summary: [FOR TESTING ONLY]: Title 1
- Denoscription: Denoscription 1
- Issue Type: Task
- Status: In Progress
- Priority: Medium
- Created: 2025-08-11
- Updated: 2025-08-11
```
## Override Tools (JiraSearch)
```
from pybotchi import ActionReturn, MCPAction, MCPConnection, MCPToolAction
class AtlassianAgent(MCPAction):
"""Atlassian query."""
__mcp_connections__ = [
MCPConnection("jira", "http://0.0.0.0:9000/mcp", require_integration=False)
]
async def post(self, context):
readable_response = await context.llm.ainvoke(context.prompts)
await context.add_response(self, readable_response.content)
return ActionReturn.END
class JiraSearch(MCPToolAction):
async def pre(self, context):
print("You can do anything here or even call `super().pre`")
return await super().pre(context)
```
### View Overridden Graph
```
flowchart TD
... same list ...
mcp.jira.patched.JiraGetIssue[mcp.jira.patched.JiraGetIssue]
... same list ...
__main__.AtlassianAgent --> mcp.jira.patched.JiraGetIssue
... same list ...
```
#### **Updated Result**
```
You can do anything here or even call `super().pre`
Here is one "In Progress" ticket currently assigned to you:
- Ticket Key: BAAI-244
- Summary: [FOR TESTING ONLY]: Title 1
- Denoscription: Denoscription 1
- Issue Type: Task
- Status: In Progress
- Priority: Medium
- Created: 2025-08-11
- Last Updated: 2025-08-11
- Reporter: Alexie Madolid
If you need details from another ticket or more information, let me know!
```
# As Server
#### **server.py**
```python
from contextlib import AsyncExitStack, asynccontextmanager
from fastapi import FastAPI
from pybotchi import Action, ActionReturn, start_mcp_servers
class TranslateToEnglish(Action):
"""Translate sentence to english."""
__mcp_groups__ = ["your_endpoint1", "your_endpoint2"]
sentence: str
async def pre(self, context):
message = await context.llm.ainvoke(
f"Translate this to english: {self.sentence}"
)
await context.add_response(self, message.content)
return ActionReturn.GO
class TranslateToFilipino(Action):
"""Translate sentence to filipino."""
__mcp_groups__ = ["your_endpoint2"]
sentence: str
async def pre(self, context):
message = await context.llm.ainvoke(
f"Translate this to Filipino: {self.sentence}"
)
await context.add_response(self, message.content)
return ActionReturn.GO
@asynccontextmanager
async def lifespan(app):
"""Override life cycle."""
async with AsyncExitStack() as stack:
await start_mcp_servers(app, stack)
yield
app = FastAPI(lifespan=lifespan)
```
#### **client.py**
```bash
from asyncio import run
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main(endpoint: int):
async with streamablehttp_client(
f"http://localhost:8000/your_endpoint{endpoint}/mcp",
) as (
read_stream,
write_stream,
_,
):
async with ClientSession(read_stream, write_stream) as session:
await session.initialize()
tools = await session.list_tools()
response = await session.call_tool(
__main__.AtlassianAgent --> mcp.jira.JiraCreateSprint
__main__.AtlassianAgent --> mcp.jira.JiraGetProjectIssues
```
### Execute
```python
from asyncio import run
from pybotchi import Context
async def test() -> None:
"""Chat."""
context = Context(
prompts=[
{
"role": "system",
"content": "Use Jira Tool/s until user's request is addressed",
},
{
"role": "user",
"content": "give me one inprogress ticket currently assigned to me?",
},
]
)
await context.start(AtlassianAgent)
print(context.prompts[-1]["content"])
run(test())
```
#### **Result**
```
Here is one "In Progress" ticket currently assigned to you:
- Ticket Key: BAAI-244
- Summary: [FOR TESTING ONLY]: Title 1
- Denoscription: Denoscription 1
- Issue Type: Task
- Status: In Progress
- Priority: Medium
- Created: 2025-08-11
- Updated: 2025-08-11
```
## Override Tools (JiraSearch)
```
from pybotchi import ActionReturn, MCPAction, MCPConnection, MCPToolAction
class AtlassianAgent(MCPAction):
"""Atlassian query."""
__mcp_connections__ = [
MCPConnection("jira", "http://0.0.0.0:9000/mcp", require_integration=False)
]
async def post(self, context):
readable_response = await context.llm.ainvoke(context.prompts)
await context.add_response(self, readable_response.content)
return ActionReturn.END
class JiraSearch(MCPToolAction):
async def pre(self, context):
print("You can do anything here or even call `super().pre`")
return await super().pre(context)
```
### View Overridden Graph
```
flowchart TD
... same list ...
mcp.jira.patched.JiraGetIssue[mcp.jira.patched.JiraGetIssue]
... same list ...
__main__.AtlassianAgent --> mcp.jira.patched.JiraGetIssue
... same list ...
```
#### **Updated Result**
```
You can do anything here or even call `super().pre`
Here is one "In Progress" ticket currently assigned to you:
- Ticket Key: BAAI-244
- Summary: [FOR TESTING ONLY]: Title 1
- Denoscription: Denoscription 1
- Issue Type: Task
- Status: In Progress
- Priority: Medium
- Created: 2025-08-11
- Last Updated: 2025-08-11
- Reporter: Alexie Madolid
If you need details from another ticket or more information, let me know!
```
# As Server
#### **server.py**
```python
from contextlib import AsyncExitStack, asynccontextmanager
from fastapi import FastAPI
from pybotchi import Action, ActionReturn, start_mcp_servers
class TranslateToEnglish(Action):
"""Translate sentence to english."""
__mcp_groups__ = ["your_endpoint1", "your_endpoint2"]
sentence: str
async def pre(self, context):
message = await context.llm.ainvoke(
f"Translate this to english: {self.sentence}"
)
await context.add_response(self, message.content)
return ActionReturn.GO
class TranslateToFilipino(Action):
"""Translate sentence to filipino."""
__mcp_groups__ = ["your_endpoint2"]
sentence: str
async def pre(self, context):
message = await context.llm.ainvoke(
f"Translate this to Filipino: {self.sentence}"
)
await context.add_response(self, message.content)
return ActionReturn.GO
@asynccontextmanager
async def lifespan(app):
"""Override life cycle."""
async with AsyncExitStack() as stack:
await start_mcp_servers(app, stack)
yield
app = FastAPI(lifespan=lifespan)
```
#### **client.py**
```bash
from asyncio import run
from mcp import ClientSession
from mcp.client.streamable_http import streamablehttp_client
async def main(endpoint: int):
async with streamablehttp_client(
f"http://localhost:8000/your_endpoint{endpoint}/mcp",
) as (
read_stream,
write_stream,
_,
):
async with ClientSession(read_stream, write_stream) as session:
await session.initialize()
tools = await session.list_tools()
response = await session.call_tool(
"TranslateToEnglish",
arguments={
"sentence": "Kamusta?",
},
)
print(f"Available tools: {[tool.name for tool in tools.tools]}")
print(response.content[0].text)
run(main(1))
run(main(2))
```
#### **Result**
```
Available tools: ['TranslateToEnglish']
"Kamusta?" in English is "How are you?"
Available tools: ['TranslateToFilipino', 'TranslateToEnglish']
"Kamusta?" translates to "How are you?" in English.
```
https://redd.it/1mmnr5y
@r_opensource
arguments={
"sentence": "Kamusta?",
},
)
print(f"Available tools: {[tool.name for tool in tools.tools]}")
print(response.content[0].text)
run(main(1))
run(main(2))
```
#### **Result**
```
Available tools: ['TranslateToEnglish']
"Kamusta?" in English is "How are you?"
Available tools: ['TranslateToFilipino', 'TranslateToEnglish']
"Kamusta?" translates to "How are you?" in English.
```
https://redd.it/1mmnr5y
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
Good resources for learning about managing open source and open source "business models".
I've started to soft launch my first open source project, which is a niche project tailored for a non-programming community.
I attended an event yesterday and I feel buoyed by the response I got. I had a link to a very basic version of my project at the event. My project was very well received and I feel as if I may be on to something. People seem really stoked. It's only one event, but I feel confident now that I can copy that success in getting buzz, and keep building the project and it will just get better.
I have NEVER done anything like this and I'm trying use this momentum while also building a roadmap in my brain of how to sustain and keep the ball rolling, while also keep the project from sucking.
I'm motivated to go open source rather than commercial because I think it'll be much much easier to build a community this way. There are plenty of commercial alternatives, but not really any stand out open source projects. I'm also a relatively green programmer (competent, but not a wizard. ~5 YOE building stuff).
The few questions on my mind now that I'm slowly making the idea public:
-Competiveness. Because it's open source, anyone can use and modify my code. Obviously this is a really neat part of open source. I also can't help shake the quiet instinct saying "what if someone steals it and builds something better and I get left out" or whatever.
-Monetization. I would be lying if I said I don't ever want to money from it. Given the availability of other commercial alternatives, I don't think monetizing the product itself is a winning strategy. I do think that if the project works really well and has a strong community, I can use that community to sell things, provide monetized support, build offshoot/complementary products for money, etc.
I want to make sure I do this in an ethical and honest way. If people are volunteering their time to contribute, even if I monetize something tangential, I'm still benefiting from these people's free work indirectly. The last thing I want to do is alienate the community because of how I personally benefit from their collaboration.
-Collaboration. Now that the product is starting to get "out there" a little bit, I do have some programmers and graphic designers who are starting to contribute small pieces. Now I need to built almost a secondary project for creating tickets, documentation, etc to make it really really easy to collaborate and contribute.
Anyways, I'm extremely excited by the project because it's been something I've been messing with for last five years. This project is more or less the reason I started programming in the first place. I thought "I wanna build that..." which motivated me to learn and go back to school for a MS, get better at math, etc.
I would be deeply grateful for any advice, resources, etc from people with more experience while I navigate these early questions. My mind is racing with ideas after this soft test launch, and my motivation for this project is as high as it's ever been.
https://redd.it/1mmpi26
@r_opensource
I've started to soft launch my first open source project, which is a niche project tailored for a non-programming community.
I attended an event yesterday and I feel buoyed by the response I got. I had a link to a very basic version of my project at the event. My project was very well received and I feel as if I may be on to something. People seem really stoked. It's only one event, but I feel confident now that I can copy that success in getting buzz, and keep building the project and it will just get better.
I have NEVER done anything like this and I'm trying use this momentum while also building a roadmap in my brain of how to sustain and keep the ball rolling, while also keep the project from sucking.
I'm motivated to go open source rather than commercial because I think it'll be much much easier to build a community this way. There are plenty of commercial alternatives, but not really any stand out open source projects. I'm also a relatively green programmer (competent, but not a wizard. ~5 YOE building stuff).
The few questions on my mind now that I'm slowly making the idea public:
-Competiveness. Because it's open source, anyone can use and modify my code. Obviously this is a really neat part of open source. I also can't help shake the quiet instinct saying "what if someone steals it and builds something better and I get left out" or whatever.
-Monetization. I would be lying if I said I don't ever want to money from it. Given the availability of other commercial alternatives, I don't think monetizing the product itself is a winning strategy. I do think that if the project works really well and has a strong community, I can use that community to sell things, provide monetized support, build offshoot/complementary products for money, etc.
I want to make sure I do this in an ethical and honest way. If people are volunteering their time to contribute, even if I monetize something tangential, I'm still benefiting from these people's free work indirectly. The last thing I want to do is alienate the community because of how I personally benefit from their collaboration.
-Collaboration. Now that the product is starting to get "out there" a little bit, I do have some programmers and graphic designers who are starting to contribute small pieces. Now I need to built almost a secondary project for creating tickets, documentation, etc to make it really really easy to collaborate and contribute.
Anyways, I'm extremely excited by the project because it's been something I've been messing with for last five years. This project is more or less the reason I started programming in the first place. I thought "I wanna build that..." which motivated me to learn and go back to school for a MS, get better at math, etc.
I would be deeply grateful for any advice, resources, etc from people with more experience while I navigate these early questions. My mind is racing with ideas after this soft test launch, and my motivation for this project is as high as it's ever been.
https://redd.it/1mmpi26
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
SED: Open source semantic layer and AI-data firewall for safe, governed database access
Hey r/opensource!
I wanted to share a project I’ve been building called SED, an open source semantic layer and AI-data firewall designed to make AI-powered database access safe, governed, and compliant.
SED automatically analyzes your database schema to create a semantic layer that understands your data and business logic. It translates natural language queries into secure and optimized SQL while enforcing access controls, compliance, and governance rules dynamically. The system detects schema changes to keep everything in sync and operates entirely locally, ensuring your data never leaves your environment.
Essentially, it serves as a protective firewall between AI models and sensitive databases to prevent unauthorized or unsafe access.
If you’re interested in projects around AI, databases, and data security or if you’re building AI-native apps that query data ,I’d love for you to check it out, try the CLI tool, and share your feedback.
Here’s the repo: https://github.com/holy182/sed-cli
Docs & Website: Here
Happy to hear your thoughts and feedback, thanks for checking this out!
https://redd.it/1mmos4r
@r_opensource
Hey r/opensource!
I wanted to share a project I’ve been building called SED, an open source semantic layer and AI-data firewall designed to make AI-powered database access safe, governed, and compliant.
SED automatically analyzes your database schema to create a semantic layer that understands your data and business logic. It translates natural language queries into secure and optimized SQL while enforcing access controls, compliance, and governance rules dynamically. The system detects schema changes to keep everything in sync and operates entirely locally, ensuring your data never leaves your environment.
Essentially, it serves as a protective firewall between AI models and sensitive databases to prevent unauthorized or unsafe access.
If you’re interested in projects around AI, databases, and data security or if you’re building AI-native apps that query data ,I’d love for you to check it out, try the CLI tool, and share your feedback.
Here’s the repo: https://github.com/holy182/sed-cli
Docs & Website: Here
Happy to hear your thoughts and feedback, thanks for checking this out!
https://redd.it/1mmos4r
@r_opensource
GitHub
GitHub - holy182/sed-cli: Database Intelligence Automation, a local-first firewall for LLMs that automatically discovers database…
Database Intelligence Automation, a local-first firewall for LLMs that automatically discovers database structure, generates semantic business rules, translates natural language to safe SQL, and en...
Warp Terminal is terrible, hear me out.
Heya, Sorry to say this, But i think Warp Terminal is terrible, Don't get me wrong, I really love the way it fully automates coding on your pc while you only have to give the prompt, But 150 ai requests a month without refresh every day? Come on, that's terrible, Having to wait 30 days for 150 ai requests, At least give us a day cap, Waiting 24 hours, i can deal with that, But 30 days? Good grief...
Do any of you know good alternatives for Warp Terminal?
https://redd.it/1mms21y
@r_opensource
Heya, Sorry to say this, But i think Warp Terminal is terrible, Don't get me wrong, I really love the way it fully automates coding on your pc while you only have to give the prompt, But 150 ai requests a month without refresh every day? Come on, that's terrible, Having to wait 30 days for 150 ai requests, At least give us a day cap, Waiting 24 hours, i can deal with that, But 30 days? Good grief...
Do any of you know good alternatives for Warp Terminal?
https://redd.it/1mms21y
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
Want to learn Gleam? Help me translate timeago: a lightweight library for formatting timestamps as human-readable relative time strings.
Link: https://github.com/ayoung19/timeago
Currently only pl_pl, es_es, it_it, de_de, fr, pt_br, and en_us are translated. If you know a language not in that list and want to help with the translation effort feel free to make a PR!
You can see examples of contributions/PRs here: https://github.com/ayoung19/timeago/pulls?q=is%3Apr+is%3Aclosed
https://redd.it/1mmrblg
@r_opensource
Link: https://github.com/ayoung19/timeago
Currently only pl_pl, es_es, it_it, de_de, fr, pt_br, and en_us are translated. If you know a language not in that list and want to help with the translation effort feel free to make a PR!
You can see examples of contributions/PRs here: https://github.com/ayoung19/timeago/pulls?q=is%3Apr+is%3Aclosed
https://redd.it/1mmrblg
@r_opensource
GitHub
GitHub - ayoung19/timeago: A lightweight Gleam library for formatting timestamps as human-readable relative time strings (e.g.…
A lightweight Gleam library for formatting timestamps as human-readable relative time strings (e.g., '5 minutes ago', 'in 2 hours') with support for multiple locales...
nPhoneKIT ideas/discussion/help/advice?
So, I have an open source phone unlocking tool made in Python, and called it nPhoneKIT.
I added a phone debloater tool and IMEI blacklist checker as well, but I can't think of any more ideas
Anyone have ideas or input/suggestions?
(Link: https://nphonekit.dev)
Also, does anyone have general advice for a project like this, competing with other big tools? How long will it take to grow significantly? What can I do to help it?
https://redd.it/1mmur2t
@r_opensource
So, I have an open source phone unlocking tool made in Python, and called it nPhoneKIT.
I added a phone debloater tool and IMEI blacklist checker as well, but I can't think of any more ideas
Anyone have ideas or input/suggestions?
(Link: https://nphonekit.dev)
Also, does anyone have general advice for a project like this, competing with other big tools? How long will it take to grow significantly? What can I do to help it?
https://redd.it/1mmur2t
@r_opensource
nphonekit.dev
nPhoneKIT - Open Source Android Unlock Toolkit
Unlock your Android device with transparency. FRP, screen unlock & more, all in Python, all open source.
The Open Source Dilemma: Who Pays for Our Digital Infrastructure?
https://brainnoises.com/blog/open-source-dilemma/
https://redd.it/1mmxw2c
@r_opensource
https://brainnoises.com/blog/open-source-dilemma/
https://redd.it/1mmxw2c
@r_opensource
Brainnoises
The Open Source Dilemma: Who Pays for Our Digital Infrastructure?
Our digital world is built on a fragile foundation: critical open-source projects maintained by a few unpaid volunteers. After major security scares, it's time to ask a hard question: is this model sustainable, or are we waiting for a collapse?
Open-sourced my vector database project
Been using this for semantic search in my personal projects. Figured others might find it useful.
Main thing: you can swap indexing algorithms without rebuilding everything.
GitHub: https://github.com/doganarif/vectordb
https://redd.it/1mn0hyj
@r_opensource
Been using this for semantic search in my personal projects. Figured others might find it useful.
Main thing: you can swap indexing algorithms without rebuilding everything.
GitHub: https://github.com/doganarif/vectordb
https://redd.it/1mn0hyj
@r_opensource
GitHub
GitHub - doganarif/vectordb
Contribute to doganarif/vectordb development by creating an account on GitHub.
[100% Open Source] Gmail notifier extension with server-side code included
https://chromewebstore.google.com/detail/gmail-notifier/liabcmaifgemdglcbialogmljhekgnle
https://redd.it/1mn1jen
@r_opensource
https://chromewebstore.google.com/detail/gmail-notifier/liabcmaifgemdglcbialogmljhekgnle
https://redd.it/1mn1jen
@r_opensource
Google
Gmail Notifier - Chrome Web Store
Gmail Notifier on Browser
Hey homelabbers, I built a simple RAID performance calculator
GitHub: https://github.com/bradgarrison/raid-performance-calculator
I put together a browser-based tool for quickly estimating read/write speeds and usable storage for different RAID setups, including ZFS RAIDZ.
It’s already functional, but I’m looking to improve it by:
Making the formulas more accurate across RAID types and workloads
Adding presets for HDD, SSD, and NVMe performance
Improving the UI and mobile responsiveness
Keeping it simple so it’s beginner-friendly
If you’ve got experience with RAID/storage performance (or just like tinkering with homelab tools), I’d love feedback, suggestions, or contributions. Fork it, make changes, or let me know what could be better.
https://redd.it/1mn0dwo
@r_opensource
GitHub: https://github.com/bradgarrison/raid-performance-calculator
I put together a browser-based tool for quickly estimating read/write speeds and usable storage for different RAID setups, including ZFS RAIDZ.
It’s already functional, but I’m looking to improve it by:
Making the formulas more accurate across RAID types and workloads
Adding presets for HDD, SSD, and NVMe performance
Improving the UI and mobile responsiveness
Keeping it simple so it’s beginner-friendly
If you’ve got experience with RAID/storage performance (or just like tinkering with homelab tools), I’d love feedback, suggestions, or contributions. Fork it, make changes, or let me know what could be better.
https://redd.it/1mn0dwo
@r_opensource
GitHub
GitHub - bradgarrison/raid-performance-calculator
Contribute to bradgarrison/raid-performance-calculator development by creating an account on GitHub.
Need your help in understanding the OSS inclusion
Hi ,
I am a Java backend guy working on a project I had to use Hibernate, Jakarta , etc.. which comes under GPL2.0 with class path exception and EPL 1.0/2.0 and LGPL-2.0 only Licenses.
I not modifying any of these Libraries just using their functions in my code.
Do I need to open source my code? Is there any problem if I don’t. As per our organisation policy these are weak copy left licenses and legal approval is needed which I don’t have time to follow those processes.
Are there any alternatives for these libraries.
I am stuck here any leads will be appreciated.
Thanks
Typing in hurry forgive my wording
https://redd.it/1mn5grh
@r_opensource
Hi ,
I am a Java backend guy working on a project I had to use Hibernate, Jakarta , etc.. which comes under GPL2.0 with class path exception and EPL 1.0/2.0 and LGPL-2.0 only Licenses.
I not modifying any of these Libraries just using their functions in my code.
Do I need to open source my code? Is there any problem if I don’t. As per our organisation policy these are weak copy left licenses and legal approval is needed which I don’t have time to follow those processes.
Are there any alternatives for these libraries.
I am stuck here any leads will be appreciated.
Thanks
Typing in hurry forgive my wording
https://redd.it/1mn5grh
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
Repair Shop Software Alternative
The only software I can find online aren't open source and I wanted some insight on some new open source repair management software I can't seem to find. Any recommendation is appreciated!
https://redd.it/1mn74gb
@r_opensource
The only software I can find online aren't open source and I wanted some insight on some new open source repair management software I can't seem to find. Any recommendation is appreciated!
https://redd.it/1mn74gb
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
Lychee and OpenSource struggles
I am part of LycheeOrg, the group maintaining Lychee, a self-hosted photo gallery built in PHP and Vue3. We hold ourselves to very high standards when it comes to quality and security. We keep a gold status on bestpractices.dev by maintaining over 90% test coverage, we enforce 2FA on all our members, we use static analysis, and signed commits and releases. Similarly our securityscorecards.dev score is 9.2, and we validate it on every commit to the main branch.
Now the issue is, I am currently the only active developer on the project. The others help with reviews when they can, but life understandably gets in the way. To make things more manageable, I switched to stacked pull requests (PRs built on top of PRs) so changes are smaller and more focused, thus more manageable for the team. I even built a page to better track them: pr.lycheeorg.dev. But in the end, progress still ends up stalled because of our strict 4-eyes policy.
Of course, one obvious answer is to find more contributors or reviewers, and I have tried that already twice... But there are multiple issues with this approach. The first one is that the code base is fairly large (~2200 files), which can be intimidating. More importantly, if someone is not actively using Lychee, they are usually less inclined to spend time on reviewing changes that are not going to impact them. :/
That leaves me with the less-than-ideal solution, and something that goes against my spirit: drop (temporarily?) the 4-eyes requirement and rely on "proprietary LLM based tools" for PR reviews. I hate the thought of lowering our safety perimeter, but being the only person writing code, waiting indefinitely for human reviews just is not sustainable.
Have you faced similar issues? What would you do? I would really appreciate your thoughts.
https://redd.it/1mn8ew8
@r_opensource
I am part of LycheeOrg, the group maintaining Lychee, a self-hosted photo gallery built in PHP and Vue3. We hold ourselves to very high standards when it comes to quality and security. We keep a gold status on bestpractices.dev by maintaining over 90% test coverage, we enforce 2FA on all our members, we use static analysis, and signed commits and releases. Similarly our securityscorecards.dev score is 9.2, and we validate it on every commit to the main branch.
Now the issue is, I am currently the only active developer on the project. The others help with reviews when they can, but life understandably gets in the way. To make things more manageable, I switched to stacked pull requests (PRs built on top of PRs) so changes are smaller and more focused, thus more manageable for the team. I even built a page to better track them: pr.lycheeorg.dev. But in the end, progress still ends up stalled because of our strict 4-eyes policy.
Of course, one obvious answer is to find more contributors or reviewers, and I have tried that already twice... But there are multiple issues with this approach. The first one is that the code base is fairly large (~2200 files), which can be intimidating. More importantly, if someone is not actively using Lychee, they are usually less inclined to spend time on reviewing changes that are not going to impact them. :/
That leaves me with the less-than-ideal solution, and something that goes against my spirit: drop (temporarily?) the 4-eyes requirement and rely on "proprietary LLM based tools" for PR reviews. I hate the thought of lowering our safety perimeter, but being the only person writing code, waiting indefinitely for human reviews just is not sustainable.
Have you faced similar issues? What would you do? I would really appreciate your thoughts.
https://redd.it/1mn8ew8
@r_opensource
Lychee
LycheeOrg — Self-hosted photo-management done right.
Lychee is a free photo-management tool, which runs on your server or web-space. Upload, manage and share photos like from a native application. Lychee comes with everything you need and all your photos are stored securely.
Where do you usually look for “good first issues” to contribute to open source?
Hi everyone! I’m planning to create several “good first issues” for open source projects and want to make sure they’re visible to people who are looking to contribute. So far, I only know about up-for-grabs.net and goodfirstissues.com.
Are there any other websites, platforms, or communities where you commonly look for beginner-friendly issues to start contributing? Any tips on how to get these issues noticed by new contributors would also be appreciated.
Thanks in advance!
https://redd.it/1mn9miu
@r_opensource
Hi everyone! I’m planning to create several “good first issues” for open source projects and want to make sure they’re visible to people who are looking to contribute. So far, I only know about up-for-grabs.net and goodfirstissues.com.
Are there any other websites, platforms, or communities where you commonly look for beginner-friendly issues to start contributing? Any tips on how to get these issues noticed by new contributors would also be appreciated.
Thanks in advance!
https://redd.it/1mn9miu
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community
A GPS app without maps ?
Hi all, as the noscript says, I'm looking for a FOSS Android (Lineage) app that gives latitude and longitude mainly ; speed and maybe altitude would be a plus. I'd like to use my phone as a GPS when sailing using paper charts (mandatory where I live), without a connection, and without restaurants and subway stations :)
https://redd.it/1mnh3k1
@r_opensource
Hi all, as the noscript says, I'm looking for a FOSS Android (Lineage) app that gives latitude and longitude mainly ; speed and maybe altitude would be a plus. I'd like to use my phone as a GPS when sailing using paper charts (mandatory where I live), without a connection, and without restaurants and subway stations :)
https://redd.it/1mnh3k1
@r_opensource
Reddit
From the opensource community on Reddit
Explore this post and more from the opensource community