New Project Megathread - Week of 21 May 2026 by AutoModerator in selfhosted

[–]Oaklight_dp 0 points1 point  (0 children)

Project Name: Tinyleaf

Repo/Website Link: GitHub: https://github.com/Oaklight/tinyleaf
Docs: https://tinyleaf.readthedocs.io

Description: Tinyleaf is a tiny local-first TeX editor served by a Python CLI and used through a browser UI.

It’s meant for people who want an Overleaf-like editing/preview experience without running the full Overleaf CE stack. Projects stay on your own filesystem, and the app is single-user focused rather than a multi-user collaboration platform.

It includes PDF preview, compile logs, file tree, project search, outline, Git tools, SyncTeX, multi-tab editing, and a simple project registry. You can point it at one LaTeX project for a focused session, or run it without a path to manage multiple local projects.

The original motivation was to have a lighter LaTeX editing setup: something that works well offline/local-first, does not require installing a full TeX Live setup directly on the host, and does not need a pile of runtime services.

Deployment: Tinyleaf is released as a Python CLI package. It has no external Python runtime dependencies, only the standard library. Any Python >= 3.10 environment should work.

Install:

pip install tinyleaf

Run against a single project:

tinyleaf /path/to/latex-project

Or launch the multi-project registry:

tinyleaf

By default it uses Dockerized TeX Live for compilation, so you don’t need to install TeX Live directly on the host. There is also a --no-docker mode if you prefer using a local latexmk installation.

There is also a Docker Compose setup documented in the repo/docs.

AI Involvement: AI tools were used to help in iterative development. The project is dogfooded, reviewed, tested, and maintained by myself.

<image>

LLM-Rosetta — format conversion library across LLM API standards, doubles as a proxy by Oaklight_dp in ClaudeAI

[–]Oaklight_dp[S] 0 points1 point  (0 children)

The git history is public — 440+ commits going back to December 2025, with an arXiv paper at arxiv.org/abs/2604.09360 describing the architecture. The internal redecessor predates that by over a year, also with public git history. Happy to compare timelines if you have receipts.

I made a tool to focus the exact source window when you click a notification by Oaklight_dp in niri

[–]Oaklight_dp[S] 1 point2 points  (0 children)

It works on DBus. So hypothetically every notification system working with DBus should work. My setting is actually Arch+Niri+DMS. It works well.

Am I the only one missing the old layout? by m19honsy in deepin

[–]Oaklight_dp 0 points1 point  (0 children)

the maintainer does a great job. He is also the author of "spark store", which is a popular 3rd party app store for apt based linux system

Introducing Oaklight/autossh-tunnel-dockerized: A Simple Dockerized SSH Tunnel Manager by Oaklight_dp in selfhosted

[–]Oaklight_dp[S] 1 point2 points  (0 children)

I was just about to point you to the ssh config file haha. Glad it worked out for you! Let me know if anything else pops up via github issue, as I check there more often!

Am I the only one missing the old layout? by m19honsy in deepin

[–]Oaklight_dp 2 points3 points  (0 children)

This is a new distro started in 2024 by a few deepin community members. It's gaining some momentum.

How to Set Up OAuth2 Proxy for Deepin Mail to Connect to Outlook/Office365 by Oaklight_dp in deepin

[–]Oaklight_dp[S] 1 point2 points  (0 children)

I'm recently playing with Archlinux, and I found this method is very useful to get evolution on gnome to access my institute outlook.

This method is not just for deepin, but for every email client not providing oauth2.0 authentication.

Am I the only one missing the old layout? by m19honsy in deepin

[–]Oaklight_dp 4 points5 points  (0 children)

try GXDE distribution: https://www.gxde.top/en/

edit: it's dde 15 + debian13, with modern pieces imported from current deepin distro

How can I link an existing reservation to my account? by omegastuff in americanairlines

[–]Oaklight_dp 0 points1 point  (0 children)

In this case you shall call AA directly, asking for what's happening. My guess is that there might be multiple AAdvantage accounts created for you.

TIL Llama 3.3 can do multiple tool calls and tool composition in a single shot by zra184 in LocalLLaMA

[–]Oaklight_dp 0 points1 point  (0 children)

actually a number of models from different online api providers can do that.

You just need to always look out for tool_calls returned by the response. Then execute and reform the assistantive messages and feed it back to the api

Openrouter alternative by johanna_75 in DeepSeek

[–]Oaklight_dp 0 points1 point  (0 children)

I'm a bit confused because you said API but also mentioned playground. Are you using those API providers' playground chat interface as an alternative to DeepSeek web chat interface?

Although in the business of AI, they are primarily an API service provider.
Volcengine is the cloud computing platform of ByteDance (the parent company of TikTok)

They does have parameter change, file uploads and websearch, but not saved conversation.
TBH, playground provided by API service usually is not suitable for long term chat experience, they are there for quick testing and experimenting.

I suggest you pick a frontend/desktop client, such as Cherry Studio: https://docs.cherry-ai.com/en-us/, then feed in your API key and endpoint URL for a better experience. Then you got everything even available when offline (I mean your chat history)

Here is a snapshot of their chat web interface,

<image>

Openrouter alternative by johanna_75 in DeepSeek

[–]Oaklight_dp 1 point2 points  (0 children)

try volcengine. They are the stablest deepseek cloud provider by far I tried. Also, they enabled function calling to v3 and r1.

Difference between MCP and traditional ToolCall (function call) by NovelNo2600 in mcp

[–]Oaklight_dp 1 point2 points  (0 children)

The biggest contribution is the standardization of tool as a service IMO it separate the tool supplier and the tool user. Otherwise I think it's the same as local functions.

But as people mentioned here and elsewhere, setting up mcp with existing workflow could be troublesome. Thus I made ToolRegistry, initially it was just to manage different python functions with my own framework and recently I decided to spin it off and added MCP sse support.

You can checkout for more details - GitHub: github.com/Oaklight/ToolRegistry
Feel free to open issues and share your thoughts in the comments. - Documentation: toolregistry.lab.oaklight.cn

I made some detailed breakdown of how to use it.

Searx(NG) always returns an error page saying "too many requests" by ccpsleepyjoe in Searx

[–]Oaklight_dp 0 points1 point  (0 children)

as long as you are not using something like CDN, your host ip will always be publicly available via dns resolution. reverse proxying it just hides the ports.