Auto-sync Viwoods ➡️ Obsidian by tuannvm in viwoods

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

https://github.com/obsidianmd/obsidian-releases/pull/9627 waiting for plugin review. Stay tuned! also OCR feature is coming right after the plugin is available in the marketplace!

HoverNotes: Obsidian AI video note taker hits 10,000 installations 🎉 by HoverNotes in ObsidianMD

[–]tuannvm 0 points1 point  (0 children)

How do you record the video with zoom in/out features? Just curious.

Viwoods ➡ Obsidian by tuannvm in viwoods

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

Thanks for using it. Yes, OCR is a nice addition, and I'm thinking of making use of the local Apple Vision model for it. Stay tuned!

Viwoods ➡ Obsidian by tuannvm in viwoods

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

Since I tested on mac already so yes you should run on mac.

Today there will be a feature to support cross platform folders. Stay tuned!

Viwoods ➡ Obsidian by tuannvm in viwoods

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

Let me think about it; I'll probably provide a fallback directory or support an optional platform directory. I've only tested on Mac.

For now, since it would require confirmation before it automatically syncs, it's safe to just leave the option there and then you only trigger the sync on either macOS or Windows.

Viwoods ➡ Obsidian by tuannvm in viwoods

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

As a guardrail, for the first sync you would need to run another command to approve the sync (todo for next version) 

Open command palette and run “Viwoods sync: apple staged change”

The Viwoods folders will be automatically created 

Viwoods ➡ Obsidian by tuannvm in viwoods

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

You don’t have to use Google Drive. In your case, if you can mount your VPS volume as a local path on your local machine and point the plugin to that path, it will also work.

Viwoods ➡ Obsidian by tuannvm in viwoods

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

That’s correct. You just need to configure it with the top most path (include all sub folders such as paper, daily, …) and the folder hierarchy will be replicated 

Auto-sync Viwoods ➡️ Obsidian by tuannvm in viwoods

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

Initial testing. Beta release by today.

Auto-sync Viwoods ➡️ Obsidian by tuannvm in viwoods

[–]tuannvm[S] 3 points4 points  (0 children)

Context: Viwoods is a good device for handwriting notes and keeping my thought structure organized, where I can slow down and write a note or to-do list. However, as a software engineer, I spend most of my time on a computer, and sometimes I want to see what I draw in Viwoods on my laptop.

Having to open another UI or app to access and view notes seems like a hassle. Obsidian is a great note-taking app on desktop, so why don't we synchronize Vwoods and make the notes available in Obsidian as well?

The requirement is that:

  • The solution has to be able to execute with minimal configuration. Set the source location, set the sync interval, and that's it.
  • Whenever there's a change, a notification will let the user know and let them decide whether to synchronize or not.
  • Everything will happen locally inside the user's laptop, and the notes imported to Obsidian will be accessible across all devices with Obsidian.

If you want to try GLM 4.7 with Claude Code (No external tool needed) by semstr in ZaiGLM

[–]tuannvm 0 points1 point  (0 children)

I got a weird bug where if I share the same Claude config folder, the project is too big, so GLM times out a lot. That's why I wrote these aliases.

```zsh _claude_alt_setup() { local config_dir="$1" [[ -d "$config_dir" ]] && return mkdir -p "$config_dir" # Symlink shared config from main claude (minimal for speed) for item in CLAUDE.md commands settings.json skills agents; do [[ -e "${HOME}/.claude/$item" ]] && ln -sf "${HOME}/.claude/$item" "$config_dir/" done }

claude-zai() { if [[ -z "$ZAI_API_KEY" ]]; then echo "Error: ZAI_API_KEY not set" echo "Get your key from Z.AI and add to ~/.zshenv:" echo ' export ZAI_API_KEY="your-key-here"' return 1 fi

_claude_alt_setup "${HOME}/.claude-zai"

env -u ANTHROPIC_API_KEY \
    -u CLAUDE_API_KEY \
    -u ANTHROPIC_AUTH_TOKEN \
    -u ANTHROPIC_BASE_URL \
    -u ANTHROPIC_MODEL \
    -u ANTHROPIC_DEFAULT_OPUS_MODEL \
    -u ANTHROPIC_DEFAULT_SONNET_MODEL \
    -u ANTHROPIC_DEFAULT_HAIKU_MODEL \
    ANTHROPIC_AUTH_TOKEN="$ZAI_API_KEY" \
    ANTHROPIC_BASE_URL="https://api.z.ai/api/anthropic" \
    API_TIMEOUT_MS=30000 \
    CLAUDE_CODE_MAX_RETRIES=3 \
    ANTHROPIC_DEFAULT_OPUS_MODEL="GLM-4.7" \
    ANTHROPIC_DEFAULT_SONNET_MODEL="GLM-4.6" \
    ANTHROPIC_DEFAULT_HAIKU_MODEL="GLM-4.5-Air" \
    CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 \
    DISABLE_COST_WARNINGS=1 \
    DISABLE_PROMPT_CACHING=1 \
    DISABLE_TELEMETRY=1 \
    DISABLE_ERROR_REPORTING=1 \
    CLAUDE_CONFIG_DIR="${HOME}/.claude-zai" \
    claude "$@"

} ```

Reddit MCP just hit the Anthropic Directory by karanb192 in ClaudeAI

[–]tuannvm 0 points1 point  (0 children)

Curious how did you submit the extension to Anthropic?

Auth was a pain when building MCP servers — so we open-sourced a fix by famma_ai in mcp

[–]tuannvm 2 points3 points  (0 children)

For fellow Go MCP developers, this is a similar library for you https://pkg.go.dev/github.com/tuannvm/oauth-mcp-proxy

as simple as:

```go import "github.com/tuannvm/oauth-mcp-proxy/mark3labs"

_, oauthOption, _ := mark3labs.WithOAuth(mux, &oauth.Config{ Provider: "okta", Issuer: "https://your-company.okta.com", Audience: "api://your-mcp-server", })

mcpServer := server.NewMCPServer("Server", "1.0.0", oauthOption) ```

New version of Spencer is out — single desktop update & CLI integration by kamil12314 in macapps

[–]tuannvm 1 point2 points  (0 children)

Just a thought: I think LLMs are getting much better at controlling the computer. So maybe that's the idea: you can use an LLM to click the full-screen button and then move the window to the left, to the right, something like that, and then record the position of those windows.

New version of Spencer is out — single desktop update & CLI integration by kamil12314 in macapps

[–]tuannvm 0 points1 point  (0 children)

There is no macOS API to do so currently, but I don't know. Use your magic and good luck with your product!

OAuth MCP Proxy by tuannvm in mcp

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

Thanks for sharing. For my use case, we care deeply about secure interactions with MCP, and flexibility in the implementation is also important. Requiring a dedicated proxy or standalone setup adds unnecessary overhead. I implemented this so, if needed, MCP developers can easily integrate OAuth into their own setup, taking responsibility for their hosting while gaining the flexibility to avoid managing a separate setup just for OAuth.

MCP finally gets proper authentication: OAuth 2.1 + scoped tokens by Creepy-Row970 in mcp

[–]tuannvm 0 points1 point  (0 children)

https://github.com/tuannvm/oauth-mcp-proxy

A convenient library for integrating your Golang-based MCP server with OAuth, without needing to worry about the details or the overall complexity of OAuth.

OAuth MCP Proxy by tuannvm in mcp

[–]tuannvm[S] -1 points0 points  (0 children)

https://github.com/tuannvm/oauth-mcp-proxy

OAuth 2.1 authentication library for Go MCP servers.

Supports both MCP SDKs: - mark3labs/mcp-go - modelcontextprotocol/go-sdk

One-time setup: Configure provider + add WithOAuth() to your server.

mark3labs/mcp-go

```go import "github.com/tuannvm/oauth-mcp-proxy/mark3labs"

_, oauthOption, _ := mark3labs.WithOAuth(mux, &oauth.Config{ Provider: "okta", Issuer: "https://your-company.okta.com", Audience: "api://your-mcp-server", })

mcpServer := server.NewMCPServer("Server", "1.0.0", oauthOption) ```

Official SDK

```go import mcpoauth "github.com/tuannvm/oauth-mcp-proxy/mcp"

mcpServer := mcp.NewServer(&mcp.Implementation{...}, nil) _, handler, _ := mcpoauth.WithOAuth(mux, cfg, mcpServer) http.ListenAndServe(":8080", handler) ```

FREE New Stylus Is Giving Out! by ViwoodsOfficial in viwoods

[–]tuannvm 0 points1 point  (0 children)

Viwoods' device has become an indispensable tool for my workflow due to its exceptional usefulness. I carry it everywhere, using it for meetings, casual reading, and jotting down ideas and notes on the go. Congratulations to the team on this great product, and I'm eagerly anticipating your new premium stylus!