Opensource by Reddit – Telegram
Opensource by Reddit
22 subscribers
5 photos
2 videos
9.61K links
Reddit's ♨️ take on Open Source Technology.

Join the discussion ➡️ @opensource_chats

Channel Inquiries ➡️ @group_contacts_bot

👄 TIPS ➡️➡️➡️ https://news.1rj.ru/str/addlist/mB9fRZOHTUk5ZjZk

🌈 made possible by
@reddit2telegram
@r_channels
Download Telegram
I made a better Political Compass test

Hi guys, I was frustrated when doing the political compass, so I made a cool quiz called Votely.

It’s basically the Political Compass with more accuracy and depth, but still quick to take.

We’ve also been adding more features at the request of our users, including:

1. A progressive to conservative axis to capture social views
2. 81 ideologies instead of just four quadrants
3. percentage sliders from -100% to 100% for nuance
4. a very fun 3D cube you can spin around
5. short and long versions depending on how much time you have

Check it out at https://votelyquiz.juleslemee.com/ and let me know what you think! I’d love feedback on any features you’d like to see next.

The code is fully open source at https://github.com/juleslemee/Votely

https://redd.it/1mm81we
@r_opensource
Show HN: I open sourced my screenshot tool that i made for myself.

https://github.com/jellydeck/moocup/


features:

\- 3d transform, scale up and down image

\- Change position, scale

\- Apply fixed margin on all axis

\- Smart magic border, color, width

\- Single click export to Webp, PNG, JPEG.



you can also self-host by following instructions in Readme, or using Railway for single click deploy.

It's a personal tool I made for myself. I needed good photos to showcase my work, and all the available options felt quite right.

so i made one myself.

lemme know if you have any ideas for features.

https://redd.it/1mmcqep
@r_opensource
Open Source to Business – Your Suggestions Needed

Hello folks,

I have developed an open tool designed to assist researchers and academics with article and literature research and search. My question is—how can I best leverage this tool from a business perspective?

My current plan is to launch it as a free tool for now, with frequent updates and new features in the pipeline. I would appreciate any ideas or suggestions you can share.

https://redd.it/1mme31x
@r_opensource
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
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 -->
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(
"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
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
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
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
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
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
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
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
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
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